package com.codefish;

import java.util.Random;

/**
 * A股票行情发布者
 *
 * @author codefish
 * @version 1.0
 * @date 2022/05/07 下午 04:25
 */
public class AStockPublisher extends StockPublisher {
    /**
     * 当前股票价格，初始化为100
     */
    private double price = 100.0;
    /**
     * 一个随机对象，用于产生随机的股票价格
     */
    private final Random r = new Random();

    /**
     * 定义一个线程，用于模拟股票价格变化
     */
    Thread thread = new Thread(() -> {
        while (true) {
            //产生0到500的股票价格
            price = r.nextDouble() * 500;
            //通知所有订阅者股票行情已经更新
            notifyObservers();
            try {
                //休眠3s，模拟一天的冷却
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });

    /**
     * 线程启动handler
     */
    public void start() {
        thread.start();
    }


    public double getPrice() {
        return price;
    }
}
